package com.zeus.controller;

import com.zeus.pojo.Users;
import com.zeus.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * @author 冯扬龙
 * @date 2021/4/16 20:56
 */
@Controller
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UsersService usersService;

    @RequestMapping("/register")
    public String go_Regi(){
        return  "register";
    }

//    进入首页后点击登录按钮进入登录页面
    @RequestMapping("/login")
    public String go_login(){
        return  "login";
    }


//    前端点击注册按钮，把数据储存到数据库
    @RequestMapping("/save_reg")
    public String save_Regi(Users users){
//在service里面create方法返回的是一个数字要证明是否成功插入数据库了
        int i = usersService.create(users);
        if(i > 0){
            return "login";
        }else {
//            用layui的error界面美化
            return  "error";
        }

    }

//    前端通过ajax里的路径走到这里,前端传过来的是用户在页面里输入的名字uname，ajax里放的名字跟这里面的名字要一致
//    详细文件在regist.js里面,这里把整型的数据拼接了一个空的字符串所以把i等于是变成了string类型，这也是reginst.js里面的i为字符串的原因
    @RequestMapping("/isExitsUname")
    @ResponseBody
    public String isExitsUname(String uname){
        int i = usersService.isExitsUname(uname);
        return i+"";
    }

//判断用户名和密码是否正确,前端传过来的是users对象（用户名+密码组成了users对象）
    @RequestMapping("/checkLogin")
    public String checkLogin(Users users, HttpServletRequest request){
//        调用service层方法返回一个正在登录的用户对象，假如ok的话就把用户信息存到session
        Users loginUser = usersService.checkLogin(users);
        if(loginUser != null){
            HttpSession session = request.getSession();
            session.setAttribute("loginUser",loginUser);
            return "redirect:/index";//假如不为空就登录成功然后直接进首页,这里假设不使用重定向的话当你退出登录以后再进去，
            // 商品的分级信息就加载不出来
        }else {
            return "loginError"; //用户名或者密码错误
        }
    }

//    用户退出登录跳转到登录页面,销毁session
    @RequestMapping("/loginOut")
    public String loginOut(HttpServletRequest request){
//        用户退出登录以后销毁session,刷新一下回到首页
        HttpSession session = request.getSession();
        session.invalidate();
        return "index";
    }
}
